home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 5386 < prev    next >
Encoding:
Text File  |  1996-08-05  |  1.7 KB  |  44 lines

  1. Path: freenet.vancouver.bc.ca!zipz
  2. From: zipz@opus.freenet.vancouver.bc.ca (Patrick Wong)
  3. Newsgroups: comp.lang.c
  4. Subject: fclose() and remove() within a funct'n
  5. Date: 12 Feb 1996 20:43:40 GMT
  6. Organization: Vancouver Regional FreeNet
  7. Message-ID: <4fo8ps$3v6@milo.freenet.vancouver.bc.ca>
  8. NNTP-Posting-Host: opus.freenet.vancouver.bc.ca
  9. Summary: How does one use the atexit() function to close and remove a file?
  10. X-Newsreader: TIN [version 1.2 PL2]
  11.  
  12. I'm writing a function that is supposed to close and remove temporary files
  13. on a DOS machine.  I'm posting this in c.l.c because it's a C question as 
  14. well as a DOS question.
  15. I am using the atexit() function to close the temporary file before 
  16. exiting the function.  Yet the atexit() function will not allow me to 
  17. pass a pointer to the file that I want to close (and delete).  The 
  18. function MUST be responsible for closing and deleting all temporary files 
  19. it creates upon PROGRAM termination (hence the atexit() function).
  20.  
  21. Here is the function:
  22.  
  23. FILE *tempname(char *filename, char *mode)
  24. {
  25.     FILE *fptemp;
  26.     char *ptemp;
  27.     const char fnlen = 13;
  28.  
  29.     if ((ptemp = (char *)malloc(fnlen * sizeof(char))) == NULL)
  30.       return NULL;
  31.     ptemp = (filename == NULL) ? tmpnam(NULL) : tmpnam(filename);
  32.     return (((fptemp = fopen(filename, mode)) == NULL) ? NULL : fptemp);
  33. }
  34. /* so how do I add the functionality descrbed above? */
  35. /* I believe tmpnam() if a non-ansi function ... is it? */
  36.  
  37.  
  38. --
  39.  
  40. /* Name : Patrick Wong                   : "Jean Cretien, thank you for  */
  41. /* E-mail : zipz@freenet.vancouver.bc.ca :  saving our country; thank us */
  42. /* Occupation : Student/Programmer       :  for saving your Job!"        */
  43. /* School : BCIT - Computer Systems      : -- an intelligent citizen     */
  44.